Phòng ngừa và biện pháp đối phó Tấn công phát lại

Biện pháp đối phó chung cho tất cả các cuộc tấn công chơi lại

Các cuộc tấn công phát lại có thể được ngăn chặn bằng cách gắn thẻ cho từng thành phần được mã hóa với ID phiên và số thành phần.[1] Sử dụng kết hợp các giải pháp này không được dùng bất cứ thứ gì phụ thuộc lẫn nhau. Bởi vì không có sự phụ thuộc lẫn nhau nên có ít lỗ hổng hơn. Điều này hoạt động vì một phiên ID ngẫu nhiên, duy nhất được tạo cho mỗi lần chạy chương trình, do đó lần chạy trước trở nên khó lặp lại hơn. Trong trường hợp này, kẻ tấn công sẽ không thể thực hiện phát lại vì trong lần chạy mới, ID phiên sẽ thay đổi.

Thêm về

Phiên Ids, còn được gọi là mã thông báo phiên, là một cơ chế có thể được sử dụng để giúp tránh các cuộc tấn công phát lại. Cách tạo id phiên làm việc như sau.

  1. Bob gửi mã thông báo một lần cho Alice, Alice sử dụng để chuyển đổi mật khẩu và gửi kết quả cho Bob. Ví dụ: cô ấy sẽ sử dụng mã thông báo để tính toán hàm băm của mã thông báo phiên và nối nó với mật khẩu sẽ được sử dụng.
  2. Về phía mình, Bob thực hiện tính toán tương tự với mã thông báo phiên.
  3. Nếu và chỉ khi cả hai giá trị của Alice và Bob khớp nhau, đăng nhập thành công.
  4. Bây giờ, giả sử một kẻ tấn công Eve đã chiếm được giá trị này và cố gắng sử dụng nó trong một phiên khác. Bob sẽ gửi một mã thông báo phiên khác và khi Eve trả lời với giá trị đã nắm bắt của cô, nó sẽ khác với tính toán của Bob để anh ta biết đó không phải là Alice.

Mã thông báo phiên nên được chọn theo một quy trình ngẫu nhiên (thông thường, các quy trình giả ngẫu nhiên được sử dụng). Nếu không, Eve có thể đóng vai Bob, đưa ra một số mã thông báo dự đoán trong tương lai và thuyết phục Alice sử dụng mã thông báo đó trong quá trình chuyển đổi của cô. Sau đó, Eve có thể phát lại câu trả lời của cô ấy sau đó (khi mã thông báo được dự đoán trước đó thực sự được trình bày bởi Bob) và Bob sẽ chấp nhận xác thực.

Mật khẩu một lần

Mật khẩu một lần tương tự như mã thông báo phiên ở chỗ mật khẩu hết hạn sau khi được sử dụng hoặc sau một khoảng thời gian rất ngắn. Chúng có thể được sử dụng để xác thực các giao dịch riêng lẻ ngoài các phiên. Chúng cũng có thể được sử dụng trong quá trình xác thực để giúp thiết lập lòng tin giữa hai bên đang liên lạc với nhau. bạn có thể tưởng tượng như các phương thức thanh toán trực tiếp của ngân hàng.

Nonces và MAC

Bob cũng có thể gửi Nonces nhưng sau đó nên bao gồm mã xác thực tin nhắn (MAC) mà Alice nên kiểm tra.

Dấu thời gian

Dấu thời gian là một cách khác để ngăn chặn một cuộc tấn công phát lại. Đồng bộ hóa phải đạt được bằng cách sử dụng một giao thức an toàn. Ví dụ, Bob định kỳ phát sóng thời gian trên đồng hồ của mình cùng với MAC. Khi Alice muốn gửi tin nhắn cho Bob, cô ấy bao gồm ước tính tốt nhất về thời gian trên đồng hồ của anh ấy trong tin nhắn của cô ấy, cũng được xác thực. Bob chỉ chấp nhận các tin nhắn mà dấu thời gian nằm trong dung sai hợp lý. Ưu điểm của sơ đồ này là Bob không cần tạo số ngẫu nhiên (giả) và Alice không cần hỏi Bob số ngẫu nhiên. Trong các mạng đơn hướng hoặc gần một chiều, nó có thể là một lợi thế. Sự đánh đổi là phát lại các cuộc tấn công, nếu chúng được thực hiện đủ nhanh, tức là trong giới hạn 'hợp lý' đó, có thể thành công.